package 可变个数形参;

/*
    JavaSE 5.0提供了可变个数形参机制,允许直接定义能和多个实参相匹配的形参,从而可以用一种更简的方式,来传递个数可变的实参
        1、语法
            数据类型 ... 变量名
        2、使用
            (1)当调用可变个数形参的方法时,传入的参数可以是任意个(包括0个),但要保证多个参数的格式与定义的格式相同
            (2)可变个数形参的方法与本类中方法名相同,形参不同的方法之间构成重载
            (3)可变个数形参的方法与本类中方法名相同,形参类型也相同的数组不构成重载,即二者不能共存
            (4)可变个数形参在方法的形参中,必须声明在末尾
            (5)可变个数形参在方法的形参中,最多只能声明一个可变形参
 */
public class TestClass {

    public void show(String ... s){ //可变个数形参
        System.out.println("可变个数形参调用...");

        //遍历元素 --> 将形参看成数组即可
        for(int i = 0; i < s.length; i++){
            System.out.println(s[i]);
        }
    }

    //public void show(String[] s){};  --> 报错,不构成重载

    public void show(Integer i, String ... str){};

    //public void show(String ... str, Integer i){}; --> 报错,可变个数形参在形参中必须声明在末尾

    public static void main(String[] args) {
        TestClass mk = new TestClass();
        mk.show("Hello");
        mk.show("Hello","World");
        mk.show();
    }
}
